package lapiz;

import java.awt.Color;

import javax.media.opengl.GL;

import figuras.PuntoVector;

public abstract class Lapiz {
	
	protected PuntoVector posicion;
	protected double angulo;
	protected GL gl;
	
	public Lapiz(GL gl){
		posicion=new PuntoVector();
		angulo=0;
		this.gl=gl;
	}
	
	public Lapiz(PuntoVector p,double ang,GL gl){
		posicion=new PuntoVector(p);
		angulo=ang;
		this.gl=gl;
	}
	
	public void gira(double incAng){
	    double incRad=(incAng*2*Math.PI)/360.0;
	    angulo+=incRad;
	    while (angulo>2*Math.PI) angulo-=2*Math.PI;
	}
	
	public void lineTo(PuntoVector destino, boolean esVisible, int modo, Color c){
	    if(esVisible) {
	    	if(c!=null)
	    		gl.glColor3f(c.getRed(), c.getGreen(), c.getGreen());
	        gl.glBegin(modo);
	            gl.glVertex3d(posicion.getX(),posicion.getY(),posicion.getZ());
	            gl.glVertex3d(destino.getX(),destino.getY(),destino.getZ());
	        gl.glEnd();
	    }	    
	    posicion=destino;
	}

	public PuntoVector getPosicion() {
		return posicion;
	}

	public void setPosicion(PuntoVector posicion) {
		this.posicion = posicion;
	}

	public double getAngulo() {
		return angulo;
	}

	public void setAngulo(double angulo) {
		this.angulo = angulo;
	}

}
